Menu
WebSocket Kerangka WebSocketSelepas persetujuan selesai, hubungan dwi-arah pun terbina. Dari sini, pelayan dan pelanggan masing-masing berkomunikasi antara satu sama lain menggunakan kerangka WebSocket samada kerangka teks atau perduaan. Format kerangka WebSocket adalah seperti berikut:[1]
Medan | Saiz (bit) | Maksud | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Fin | 1 | Menandakan samada pesanan ialah pesanan terakhir atau bukan. | ||||||||||||||||||
Bit-bit simpanan | 3 | Bit-bit yang tidak dunakan dan disimpan untuk masa hadapan. Sentiasa 0 melainkan jika digunakan oleh mana-mana sambungan (extension). | ||||||||||||||||||
Opkod | 4 | Memberi panduan kepada penerima pesanan tentang muatan data yang dibawa oleh kerangka.
| ||||||||||||||||||
Bertopeng | 1 | Penanda samada muatan ditopengkan atau tidak. Biasanya sentiasa 1 bagi pesanan yang datang daripada pelanggan. | ||||||||||||||||||
Panjang muatan | 7 | Panjang muatan (dalam bait) oleh pesanan jika panjang kurang daripada 125 bait. | ||||||||||||||||||
7+16 | Jika nilai 7 bit pertama ialah 126, maka panjang muatan disimpan dalam 16 bit seterusnya. | |||||||||||||||||||
7+64 | Jika nilai 7 bit pertama ialah 127, maka panjang muatan disimpan dalam 64 bit seterusnya. | |||||||||||||||||||
Kunci penopeng | 32 | Setiap bait ialah kunci yang digunakan untuk menopengkan muatan. | ||||||||||||||||||
Data muatan | x + y | Data yang dibawa oleh pesanan. | ||||||||||||||||||
Data sambungan | x | Sentiasa 0 melainkan penggunaan sambungan (extension) telah dipersetujui. | ||||||||||||||||||
Data aplikasi | y | Bait-bait lebihan dalam kerangka ialah data aplikasi. | ||||||||||||||||||
Algoritma penopengan adalah seperti berikut:
muatan_bertopeng = "" bagi indeks dari 0 hingga panjang_muatan muatan_bertopeng += muatan[indeks] ^ topeng[indeks mod 4]
Menu
WebSocket Kerangka WebSocketBerkaitan
WebSocketRujukan
WikiPedia: WebSocket https://tools.ietf.org/html/rfc6455 https://tools.ietf.org/html/rfc6455#section-5.2